home *** CD-ROM | disk | FTP | other *** search
- // Restart Plug In for Now Utilities 6.0
- // © Now Software, Inc.
- //
- // written by hac
- // 3/4/96
- //
- // This module installs three grouped menu items in the Now Tabs popup:
- // - Restart
- // - Shutdown
- // - Sleep (Powerbook only)
-
-
-
- #include "Main.h"
- #include "ShutDown.h"
- #include "Power.h"
-
- #define kRestart 2
- #define kShutdown 3
- #define kSleep 4
-
- pascal void main(PlugInInformation *plugInInformation)
- {
- plugInInformation->version = kPlugInInformationVersionOne;
- plugInInformation->plugInType = kRestartPlugInType;
- plugInInformation->PrepareMenu = &PrepareMenu;
- plugInInformation->HandleMenuItemSelected = &HandleMenuItemSelected;
- }
-
- pascal void PrepareMenu(InstantAccessInformation *information, short asPreview)
- {
- MenuSelectResultStructure mrs;
-
- MenuItemInformation menuItem;
-
- // add a divider line above
- menuItem.version = kMenuItemInformationVersionOne;
- menuItem.classification = kMiscellaneousClassification;
- menuItem.type = kDividerMenuItemType;
- menuItem.id = 1;
- menuItem.enabled = false;
- menuItem.style = 0;
- menuItem.mark = 0;
- menuItem.hasSubMenu = FALSE;
- menuItem.subMenu = nil;
- menuItem.refCon = 0;
- menuItem.owningPlugInType = kRestartPlugInType;
-
- (*information->AddMenuItem)(&menuItem);
-
- // add the restart menu item
-
- BlockMove("\pRestart", menuItem.text, kMenuItemTextSize);
-
- menuItem.type = kTextMenuItemType;
- menuItem.id = 2;
- menuItem.enabled = true;
-
- (*information->AddMenuItem)(&menuItem);
-
- // add the shutdown menu item
-
- BlockMove("\pShutdown", menuItem.text, kMenuItemTextSize);
-
- menuItem.type = kTextMenuItemType;
- menuItem.id = 3;
- menuItem.enabled = true;
-
- (*information->AddMenuItem)(&menuItem);
-
- // add the sleep menu item
-
- mrs = (*information->FindMenuItem)("\pSpecial", "\pSleep");
- if ((mrs.wordResult.menuID != 0) && (mrs.wordResult.itemNumber != 0)) {
- BlockMove("\pSleep", menuItem.text, kMenuItemTextSize);
-
- menuItem.type = kTextMenuItemType;
- menuItem.id = 4;
- menuItem.enabled = true;
-
- (*information->AddMenuItem)(&menuItem);
- } else {
- Str15 tempStr;
-
- NumToString(mrs.wordResult.menuID, tempStr);
- //DebugStr(tempStr);
-
- NumToString(mrs.wordResult.itemNumber, tempStr);
- //DebugStr(tempStr);
- }
-
-
-
- // add a divider line below
- menuItem.type = kDividerMenuItemType;
- menuItem.id = 5;
- menuItem.enabled = false;
-
- (*information->AddMenuItem)(&menuItem);
- }
-
- pascal void CleanUpAfterMenuSelect(InstantAccessInformation *information, short asPreview)
- {
- //hmmmm....
- }
-
- pascal void HandleMenuItemSelected(InstantAccessInformation *information, MenuItemInformation *menuItem)
- {
- switch (menuItem->id) {
-
- case kRestart:
- ShutDwnStart();
- break;
-
- case kShutdown:
- ShutDwnPower();
- break;
-
- case kSleep:
- (*information->SelectFinderMenuItem)("\pSpecial", "\pSleep");
- break;
-
- otherwise:
- break;
-
- }
-
- }
-